function xstooltip_findPosX(obj) 
{
	var curleft = 0;
	if (obj.offsetParent) 
	{
		while (obj != document.body && obj.offsetParent) 
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function xstooltip_findPosY(obj) 
{
	var curtop = 0;
	if (obj.offsetParent) 
	{
		while (obj != document.body && obj.offsetParent) 
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function xstooltip_show(tooltipId, parentId, posX, posY)
{
	it = document.getElementById(tooltipId);
	
	if ((it.style.top == '' || it.style.top == 0) 
		&& (it.style.left == '' || it.style.left == 0))
	{
		// need to fixate default size (MSIE problem)
		it.style.width = it.offsetWidth + 'px';
		it.style.height = it.offsetHeight + 'px';
		
		img = document.getElementById(parentId); 
	
		// if tooltip is too wide, shift left to be within parent 
		//if (posX + it.offsetWidth > img.offsetWidth) posX = img.offsetWidth - it.offsetWidth;
		//if (posX < 0 ) posX = 0; 
		
		//x = xstooltip_findPosX(img) + posX;
		//y = xstooltip_findPosY(img) + posY;
		x = img.offsetParent.offsetLeft + posX;
		y = img.offsetParent.offsetTop + posY;
		
		it.style.top = y + 'px';
		it.style.left = x + 'px';
	}
	
	it.style.visibility = 'visible'; 
}

function xstooltip_hide(id)
{
	it = document.getElementById(id); 
	it.style.visibility = 'hidden'; 
}
